package com.homework.common;
/**
 * 响应模型类
 * @author Jason
 * @date 2023.6.29
 */
@Data
public class R {

    /**
     * 状态码
     * 200表示正确返回
     * 500表示错误返回
     */
    private int code;

    /**
     * 返回的提示信息
     */
    private String message;

    /**
     * 返回的提示信息类型
     * success表示正确
     * warning表示警告
     * error表示错误
     */
    private String type;

    /**
     * 是否成功
     * true表示成功
     * false表示失败
     * ok、success方法成功
     * warning、error、fatal方法表示失败
     */
    private Boolean success;

    /**
     * 返回的工具数据模型
     */
    private Object data;

    public static R ok() {
        R r = new R();
        r.setCode(200);
        r.setSuccess(true);
        r.setType("success");
        r.setData(null);
        return r;
    }

    public static R success(String message) {
        R r = new R();
        r.setCode(200);
        r.setMessage(message);
        r.setSuccess(true);
        r.setType("success");
        r.setData(null);
        return r;
    }

    public static R success(String message, Object data) {
        R r = success(message);
        r.setData(data);
        return r;
    }

    public static R warning(String message) {
        R r = error(message);
        r.setType("warning");
        return r;
    }

    public static R error(String message) {
        R r = success(message);
        r.setSuccess(false);
        r.setType("error");
        return r;
    }

    public static R fatal(String message) {
        R r = error(message);
        r.setCode(500);
        return r;
    }
}
